package com.weixing.mall.provider.model.vo.sys;

import com.weixing.mall.base.enums.IsEnableEnum;
import com.weixing.mall.provider.model.enums.IsLeafEnum;
import com.weixing.mall.provider.model.enums.sys.MenuTypeEnum;
import lombok.Data;

import java.util.List;

/**
 * 菜单结构树
 *
 * @author  gjq
 * @date  2019/7/30
 * @since  1.0
 **/
@Data
public class SysMenuTreeTableVo {
    /**
     * id
     */
    private Long id;
    /**
     * 菜单名称
     */
    private String menuName;
    /**
     * 请求地址
     */
    private String menuUrl;
    /**
     * 父id
     */
    private Long parentId;
    /**
     * 排序字段
     */
    private Integer orderBy;
    /**
     * 是否有效
     */
    private IsEnableEnum isEnable;
    /**
     * 菜单类型
     */
    private MenuTypeEnum menuType;
    /**
     * 是否叶子节点
     */
    private IsLeafEnum vueIsLeaf;
    /**
     * 组件路径
     */
    private String vuePath;
//    private boolean hasChildren = false;
    private List<SysMenuTreeTableVo> children;
    public int hashcode() {
        return id.hashCode();
    }
    @Override
    public boolean equals(Object obj) {  // 重写equals()方法。
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (obj instanceof SysMenuTreeTableVo) {
            SysMenuTreeTableVo p = (SysMenuTreeTableVo) obj;
            return id.longValue() == p.getId().longValue();
        }
        return false;
    }
}
